// 3-1 预处理器-参数宏

/**
 * C++ 预处理器
 * 预处理器是一些指令，指示编译器在实际编译之前所需完成的预处理。

 * 所有的预处理器指令都是以井号（#）开头，只有空格字符可以出现在预处理指令之前。预处理指令**不是 C++ 语句**，所以它们不会以分号（;）结尾。

 * 我们已经看到，之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。

 * C++ 还支持很多预处理指令，比如 #include、#define、#if、#else、#line 等，让我们一起看看这些重要指令。
 *
 * --------------------------------------
 * 参数宏
 * 您可以使用 #define 来定义一个带有参数的宏，如下所示：
*/

#include <iostream>
#define MIN(a, b) (a < b ? a : b)
int main(void)
{
  int a = 5;
  int b = 10;
  std::cout << "min(5,10) : " << MIN(a, b) << std::endl;
  char ch1 = 'z';
  char ch2 = 'Z';
  std::cout << "min('z','Z') : " << MIN(ch1, ch2) << std::endl;
  printf("---------------end------------------\n");
  return 0;
}